import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import ElementPlus from 'unplugin-element-plus/vite';
import Icons from 'unplugin-icons/vite';
import IconsResolver from 'unplugin-icons/resolver';

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      imports: ['vue', 'vue-router', 'pinia'],
      resolvers: [ElementPlusResolver()],
      eslintrc: { enabled: false }, // 第一次初始化需要设置为 true，生成配置文件后，将其设置为 false，或者直接删除该配置项。
    }),
    Components({
      resolvers: [
        // 自动注册图标组件
        IconsResolver({
          enabledCollections: ['ep', 'mdi', 'fa'], // 指定图标集为 Element Plus
        }),
        // 自动导入 Element Plus 组件
        ElementPlusResolver(),
      ],
      dirs: [
        // 配置需要默认导入的自定义组件文件夹，该文件夹下的所有组件都会自动 import
        'src/components',
        // 也可以只配置文件夹路径，这样会导入该文件夹下的所有组件
        'src/layout/components',
      ],
    }),
    ElementPlus(),
    Icons({
      autoInstall: true,
      compiler: 'vue3', // 明确指定编译器'vue3'
    }),
  ],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'), // 示例：将@映射到src目录
      components: path.resolve(__dirname, './src/components'),
    },
  },
});
